<template>
  <div style="height:100vh; overflow:hidden; background-image:linear-gradient(135deg,#1252F2,#3082F5);">
    <el-container style="padding:20px;">
      <el-header>
        <el-row>
         <el-col :span="3"><img src="/imgs/login/logo.png" style="width:95%; height:50px"></el-col>
         <el-col :span="1"><img src="/imgs/login/auto.png" style="width:100%; height:50px"></el-col>
         <el-col :span="1"><img src="/imgs/login/verticalLine.png" style="width:100%; height:50px"></el-col>
         <el-col :span="19"><span style="color:#fff; font-weight:bold; font-size:30px; width:100%">智慧车辆运营管理系统</span></el-col>
        </el-row>
      </el-header>
      <el-main>
        <el-row>
         <el-col :span="16"><img src="/imgs/login/bg.png" style="width:100%; margin-top:35px;"></el-col>
         <el-col :span="8">
           <el-card style="margin-top:80px; margin-left:40px; width:85%;">
             <h3 style="text-align:center;">用户登录</h3>
             <el-form>
               <el-form-item label="用户名" label-position="top"><el-input placeholder="请输入用户名" v-model="user.username"></el-input></el-form-item>
               <el-form-item label="密码" label-position="top"><el-input placeholder="请输入密码" type="password" v-model="user.password" @keydown.enter="login"></el-input></el-form-item>
               <el-form-item><el-button type="primary" style="width:100%" @click="login">登录</el-button></el-form-item>
             </el-form>
             <div style="text-align:center; color:#666; font-size:14px; padding:10px 0;">(体验账号：TOM&nbsp，&nbsp密码：admin)</div>
           </el-card>
         </el-col>
        </el-row>
      </el-main>
    </el-container>
  </div>
</template>

<script setup>
  import {ref} from "vue";
  import axios from "axios";
  import qs from "qs";
  import {ElMessage} from "element-plus";
  import router from "@/router";

  const user = ref({username:'',password:''});
  const login =()=>{
    //console.log(user.value);
    /* 使用qs框架将JS对象转为查询字符串格式( name=tom&age=18 ...) 后端工程不能加@RequestBody注解
    查询字符串框架qs需要安装 执行命令npm install qs  注意：qs框架需要导入 import qs from "qs"; */
    let data = qs.stringify(user.value);
    //1.给后端发送登录信息，需要借助axios工具，注意：axios需要安装并导入！
    axios.post(BASE_URL+'/v1/user/login',data)
        //2.发送请求后，服务器处理完毕会给客户端一个响应对象response，前端需要打.调用then(回调函数)来处理这个响应结果
         .then((response)=>{
           //response里面有很多内容，我们可以从响应对象response的data中得到后端服务器的响应数据
           //console.log(response);
           console.log(response.data);//response.data就是后端返回的JsonResult
           console.log(response.data.data);//response.data.data就是JsonResult.data,而JsonResult.data就是userVO
           //3.需要根据后端的响应结果做前端响应处理回馈给用户
          if(response.data.code == 2000){
            ElMessage.success('登录成功');
            // localStorage只能存储字符串类型的键值对 (localStorage等同于SSM中的session(有效期半小时)，但localStorage是持久化的(重启服务器关闭浏览器等数据也还存在))
            // JSON.stringify(response.data.data) 将JS对象转换为字符串类型存储 因为localStorage只能存储字符串类型的键值对
            localStorage.setItem('user',JSON.stringify(response.data.data));
            //4.用户登录成功后，需要进行页面的跳转 router.push('/')用于跳转至哪个页面 '/'跳转至HomeView，因为设置了redirect重定向因此会自动到用户列表页
            router.push('/');
          }else{
            ElMessage.error(response.data.msg);
            user.value= {};
          }
         });
  };
</script>

<style scoped>

</style>